namespace ext.form
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>
	/// Provides a lightweight HTML Editor component. Some toolbar features are not supported by Safari and will be
	/// automatically hidden when needed. These are noted in the config options where appropriate.
	/// </summary>
	/// <htmlSummary>
	/// Provides a lightweight HTML Editor component. Some toolbar features are not supported by Safari and will be
	/// automatically hidden when needed. These are noted in the config options where appropriate.
	/// &lt;br&gt;&lt;br&gt;The editor&apos;s toolbar buttons have tooltips defined in the {@link #buttonTips} property, but they are not
	/// enabled by default unless the global {@link Ext.QuickTips} singleton is {@link Ext.QuickTips#init initialized}.
	/// &lt;br&gt;&lt;br&gt;&lt;b&gt;Note: The focus/blur and validation marking functionality inherited from Ext.form.Field is NOT
	/// supported by this editor.&lt;/b&gt;
	/// &lt;br&gt;&lt;br&gt;An Editor is a sensitive component that can&apos;t be used in all spots standard fields can be used. Putting an Editor within
	/// any element that has display set to &apos;none&apos; can cause problems in Safari and Firefox due to their default iframe reloading bugs.
	/// &lt;br&gt;&lt;br&gt;Example usage:
	/// &lt;pre&gt;&lt;code&gt;
	/// // Simple example rendered with default options:
	/// Ext.QuickTips.init(); // enable tooltips
	/// new Ext.form.HtmlEditor({
	/// renderTo: Ext.getBody(),
	/// width: 800,
	/// height: 300
	/// });
	///
	/// // Passed via xtype into a container and with custom options:
	/// Ext.QuickTips.init(); // enable tooltips
	/// new Ext.Panel({
	/// title: &apos;HTML Editor&apos;,
	/// renderTo: Ext.getBody(),
	/// width: 600,
	/// height: 300,
	/// frame: true,
	/// layout: &apos;fit&apos;,
	/// items: {
	/// xtype: &apos;htmleditor&apos;,
	/// enableColors: false,
	/// enableAlignments: false
	/// }
	/// });
	/// &lt;/code&gt;&lt;/pre&gt;
	/// </htmlSummary>
	/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
	[ScriptName("HtmlEditor")]
	[ScriptNamespace("Ext.form")]
	[Imported()]
	public partial class HtmlEditor : ext.form.Field
	{
		
		#region Constructors
		public HtmlEditor(ext.form.HtmlEditor_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		public HtmlEditor()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>Enable the bold, italic and underline buttons (defaults to true)</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("enableFormat")]
		public bool EnableFormat;
		
		/// <summary>Enable the increase/decrease font size buttons (defaults to true)</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("enableFontSize")]
		public bool EnableFontSize;
		
		/// <summary>Enable the fore/highlight color buttons (defaults to true)</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("enableColors")]
		public bool EnableColors;
		
		/// <summary>Enable the left, center, right alignment buttons (defaults to true)</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("enableAlignments")]
		public bool EnableAlignments;
		
		/// <summary>Enable the bullet and numbered list buttons. Not available in Safari. (defaults to true)</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("enableLists")]
		public bool EnableLists;
		
		/// <summary>Enable the switch to source edit button. Not available in Safari. (defaults to true)</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("enableSourceEdit")]
		public bool EnableSourceEdit;
		
		/// <summary>Enable the create link button. Not available in Safari. (defaults to true)</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("enableLinks")]
		public bool EnableLinks;
		
		/// <summary>Enable font selection. Not available in Safari. (defaults to true)</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("enableFont")]
		public bool EnableFont;
		
		/// <summary>The default text for the create link prompt</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("createLinkText")]
		public string CreateLinkText;
		
		/// <summary>The default value for the create link prompt (defaults to http:/ /)</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("defaultLinkValue")]
		public string DefaultLinkValue;
		
		/// <summary>An array of available font families</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("fontFamilies")]
		public System.Array FontFamilies;
		
		/// <summary>A default value to be put into the editor to resolve focus issues (defaults to   (Non-breaking space) in Opera and IE6, ​ (Zero-width space) in all other browsers).</summary>
		/// <htmlSummary>A default value to be put into the editor to resolve focus issues (defaults to &amp;#160; (Non-breaking space) in Opera and IE6, &amp;#8203; (Zero-width space) in all other browsers).</htmlSummary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("defaultValue")]
		public string DefaultValue;
		
		/// <summary>Fires when the editor is fully initialized (including the iframe)</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("initializeEventName")]
		public const string InitializeEventName = "initialize";
		
		/// <summary>
		/// Fires when the editor is first receives the focus. Any insertion must wait
		/// until after this event.
		/// </summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("activateEventName")]
		public const string ActivateEventName = "activate";
		
		/// <summary>
		/// Fires before the textarea is updated with content from the editor iframe. Return false
		/// to cancel the sync.
		/// </summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("beforesyncEventName")]
		public const string BeforesyncEventName = "beforesync";
		
		/// <summary>
		/// Fires before the iframe editor is updated with content from the textarea. Return false
		/// to cancel the push.
		/// </summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("beforepushEventName")]
		public const string BeforepushEventName = "beforepush";
		
		/// <summary>Fires when the textarea is updated with content from the editor iframe.</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("syncEventName")]
		public const string SyncEventName = "sync";
		
		/// <summary>Fires when the iframe editor is updated with content from the textarea.</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("pushEventName")]
		public const string PushEventName = "push";
		
		/// <summary>Fires when the editor switches edit modes</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("editmodechangeEventName")]
		public const string EditmodechangeEventName = "editmodechange";
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("fieldClass")]
		public string FieldClass;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("focusClass")]
		public string FocusClass;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("autoCreate")]
		public string AutoCreate;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("inputType")]
		public string InputType;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("invalidClass")]
		public string InvalidClass;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("invalidText")]
		public string InvalidText;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("msgFx")]
		public string MsgFx;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("validateOnBlur")]
		public string ValidateOnBlur;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("allowDomMove")]
		public bool AllowDomMove;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("applyTo")]
		public string ApplyTo;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("autoHeight")]
		public string AutoHeight;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("autoWidth")]
		public string AutoWidth;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("cls")]
		public string Cls;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("disabled")]
		public string Disabled;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("disabledClass")]
		public string DisabledClass;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("msgTarget")]
		public string MsgTarget;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("readOnly")]
		public string ReadOnly;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("style")]
		public string Style;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("validationDelay")]
		public string ValidationDelay;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("validationEvent")]
		public string ValidationEvent;
		
		/// <summary>@hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("tabIndex")]
		public string TabIndex;
		#endregion
		
		#region Properties
		/// <summary>
		/// Object collection of toolbar tooltips for the buttons in the editor. The key
		/// is the command id associated with that button and the value is a valid QuickTips object.
		/// For example:
		/// 
		/// {
		/// bold : {
		/// title: &apos;Bold (Ctrl+B)&apos;,
		/// text: &apos;Make the selected text bold.&apos;,
		/// cls: &apos;x-html-editor-tip&apos;
		/// },
		/// italic : {
		/// title: &apos;Italic (Ctrl+I)&apos;,
		/// text: &apos;Make the selected text italic.&apos;,
		/// cls: &apos;x-html-editor-tip&apos;
		/// },
		/// ...
		/// </summary>
		/// <htmlSummary>
		/// Object collection of toolbar tooltips for the buttons in the editor. The key
		/// is the command id associated with that button and the value is a valid QuickTips object.
		/// For example:
		/// &lt;pre&gt;&lt;code&gt;
		/// {
		/// bold : {
		/// title: &apos;Bold (Ctrl+B)&apos;,
		/// text: &apos;Make the selected text bold.&apos;,
		/// cls: &apos;x-html-editor-tip&apos;
		/// },
		/// italic : {
		/// title: &apos;Italic (Ctrl+I)&apos;,
		/// text: &apos;Make the selected text italic.&apos;,
		/// cls: &apos;x-html-editor-tip&apos;
		/// },
		/// ...
		/// &lt;/code&gt;&lt;/pre&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("buttonTips")]
		[IntrinsicProperty()]
		public object ButtonTips
		{
			get
			{
				throw new System.Exception("Imported - not implemented");
			}
			set
			{
			}
		}
		#endregion
		
		#region Methods
		/// <summary>
		/// Protected method that will not generally be called directly. It
		/// is called when the editor initializes the iframe with HTML contents. Override this method if you
		/// want to change the initialization markup of the iframe (e.g. to add stylesheets).
		///
		/// Note: IE8-Standards has unwanted scroller behavior, so the default meta tag forces IE7 compatibility
		/// </summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("getDocMarkup")]
		public void GetDocMarkup()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Overridden and disabled. The editor element does not support standard valid/invalid marking. @hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("markInvalid")]
		public void MarkInvalid()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Overridden and disabled. The editor element does not support standard valid/invalid marking. @hide</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("clearInvalid")]
		public void ClearInvalid()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Protected method that will not generally be called directly. If you need/want
		/// custom HTML cleanup, this is the method you should override.
		/// </summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		/// <param name="html">The HTML to be cleaned</param>
		/// <returns>The cleaned HTML</returns>
		[ScriptName("cleanHtml")]
		public string CleanHtml(string html)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Protected method that will not generally be called directly. Syncs the contents
		/// of the editor iframe with the textarea.
		/// </summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("syncValue")]
		public void SyncValue()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Protected method that will not generally be called directly. Pushes the value of the textarea
		/// into the iframe editor.
		/// </summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("pushValue")]
		public void PushValue()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Protected method that will not generally be called directly. It triggers
		/// a toolbar update by reading the markup state of the current selection in the editor.
		/// </summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("updateToolbar")]
		public void UpdateToolbar()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Inserts the passed text at the current cursor position. Note: the editor must be initialized and activated
		/// to insert text.
		/// </summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		/// <param name="text"></param>
		[ScriptName("insertAtCursor")]
		public void InsertAtCursor(string text)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Returns the editor&apos;s toolbar. This is only available after the editor has been rendered.</summary>
		/// <htmlSummary>Returns the editor&apos;s toolbar. &lt;b&gt;This is only available after the editor has been rendered.&lt;/b&gt;</htmlSummary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("getToolbar")]
		public ext.Toolbar GetToolbar()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Toggles the editor between standard and source edit mode.</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		/// <param name="sourceEdit">True for source edit, false for standard</param>
		[ScriptName("toggleSourceEdit")]
		public void ToggleSourceEdit(bool sourceEdit)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>Toggles the editor between standard and source edit mode.</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("toggleSourceEdit")]
		public void ToggleSourceEdit()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Executes a Midas editor command on the editor document and performs necessary focus and
		/// toolbar updates. This should only be called after the editor is initialized.
		/// </summary>
		/// <htmlSummary>
		/// Executes a Midas editor command on the editor document and performs necessary focus and
		/// toolbar updates. &lt;b&gt;This should only be called after the editor is initialized.&lt;/b&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		/// <param name="cmd">The Midas command</param>
		/// <param name="value">The value to pass to the command (defaults to null)</param>
		[ScriptName("relayCmd")]
		public void RelayCmd(string cmd, string value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Executes a Midas editor command on the editor document and performs necessary focus and
		/// toolbar updates. This should only be called after the editor is initialized.
		/// </summary>
		/// <htmlSummary>
		/// Executes a Midas editor command on the editor document and performs necessary focus and
		/// toolbar updates. &lt;b&gt;This should only be called after the editor is initialized.&lt;/b&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		/// <param name="cmd">The Midas command</param>
		/// <param name="value">The value to pass to the command (defaults to null)</param>
		[ScriptName("relayCmd")]
		public void RelayCmd(string cmd, bool value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Executes a Midas editor command on the editor document and performs necessary focus and
		/// toolbar updates. This should only be called after the editor is initialized.
		/// </summary>
		/// <htmlSummary>
		/// Executes a Midas editor command on the editor document and performs necessary focus and
		/// toolbar updates. &lt;b&gt;This should only be called after the editor is initialized.&lt;/b&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		/// <param name="cmd">The Midas command</param>
		[ScriptName("relayCmd")]
		public void RelayCmd(string cmd)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Executes a Midas editor command directly on the editor document.
		/// For visual commands, you should use {@link #relayCmd} instead.
		/// This should only be called after the editor is initialized.
		/// </summary>
		/// <htmlSummary>
		/// Executes a Midas editor command directly on the editor document.
		/// For visual commands, you should use {@link #relayCmd} instead.
		/// &lt;b&gt;This should only be called after the editor is initialized.&lt;/b&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		/// <param name="cmd">The Midas command</param>
		/// <param name="value">The value to pass to the command (defaults to null)</param>
		[ScriptName("execCmd")]
		public void ExecCmd(string cmd, string value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Executes a Midas editor command directly on the editor document.
		/// For visual commands, you should use {@link #relayCmd} instead.
		/// This should only be called after the editor is initialized.
		/// </summary>
		/// <htmlSummary>
		/// Executes a Midas editor command directly on the editor document.
		/// For visual commands, you should use {@link #relayCmd} instead.
		/// &lt;b&gt;This should only be called after the editor is initialized.&lt;/b&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		/// <param name="cmd">The Midas command</param>
		/// <param name="value">The value to pass to the command (defaults to null)</param>
		[ScriptName("execCmd")]
		public void ExecCmd(string cmd, bool value)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Executes a Midas editor command directly on the editor document.
		/// For visual commands, you should use {@link #relayCmd} instead.
		/// This should only be called after the editor is initialized.
		/// </summary>
		/// <htmlSummary>
		/// Executes a Midas editor command directly on the editor document.
		/// For visual commands, you should use {@link #relayCmd} instead.
		/// &lt;b&gt;This should only be called after the editor is initialized.&lt;/b&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		/// <param name="cmd">The Midas command</param>
		[ScriptName("execCmd")]
		public void ExecCmd(string cmd)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
		
		#region Events
		/// <summary>Fires when the editor is fully initialized (including the iframe)</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("initialize")]
		public event ext.auto.Delegate_ext_form_HtmlEditor Initialize;
		
		/// <summary>
		/// Fires when the editor is first receives the focus. Any insertion must wait
		/// until after this event.
		/// </summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("activate")]
		public event ext.auto.Delegate_ext_form_HtmlEditor Activate;
		
		/// <summary>
		/// Fires before the textarea is updated with content from the editor iframe. Return false
		/// to cancel the sync.
		/// </summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("beforesync")]
		public event ext.auto.Delegate_ext_form_HtmlEditor_And_System_String Beforesync;
		
		/// <summary>
		/// Fires before the iframe editor is updated with content from the textarea. Return false
		/// to cancel the push.
		/// </summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("beforepush")]
		public event ext.auto.Delegate_ext_form_HtmlEditor_And_System_String Beforepush;
		
		/// <summary>Fires when the textarea is updated with content from the editor iframe.</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("sync")]
		public event ext.auto.Delegate_ext_form_HtmlEditor_And_System_String Sync;
		
		/// <summary>Fires when the iframe editor is updated with content from the textarea.</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("push")]
		public event ext.auto.Delegate_ext_form_HtmlEditor_And_System_String Push;
		
		/// <summary>Fires when the editor switches edit modes</summary>
		/// <definedin>src\widgets\form\HtmlEditor.js</definedin>
		[ScriptName("editmodechange")]
		public event ext.auto.Delegate_ext_form_HtmlEditor_And_System_Boolean Editmodechange;
		#endregion
	}
}
